package br.com.comprasPublicas.entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

/**
 *
 * @author helsen_rafael
 * @since 11/01/11
 */
@Entity
public class Produto implements Serializable {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id_produto;
    
    @Column(name="nome_produto", length=30, nullable=false)
    private String nome;
    
    @Column(name="tipo_produto", length=20, nullable=false)
    private String tipo;

    @ManyToOne
    @JoinColumn(name="id_grupoProduto")
    private GrupoProduto grupo;

    @Column(name="permanente_produto", length=1, nullable=false)
    private String permanente; //s=sim; n=não
    
    @Column(name="valor_medio_produto", nullable=false)//Pesquisar Annotation Double
    private double valor_medio;

    @Column(name="unidade_produto", length=4, nullable=false)
    private String unidade;

    @Cascade(CascadeType.ALL)

    /**
     * @return the id_produto
     */

    public int getId_produto() {
        return id_produto;
    }

    /**
     * @param id_produto the id_produto to set
     */
    public void setId_produto(int id_produto) {
        this.id_produto = id_produto;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }


    /**
     * @return the tipo
     */
    public String getTipo() {
        return tipo;
    }

    /**
     * @param tipo the tipo to set
     */
    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    /**
     * @return the grupo
     */
    public GrupoProduto getGrupo() {
        return grupo;
    }

    /**
     * @param grupo the grupo to set
     */
    public void setGrupo(GrupoProduto grupo) {
        this.grupo = grupo;
    }

    /**
     * @return the permanente
     */
    public String getPermanente() {
        return permanente;
    }

    /**
     * @param permanente the permanente to set
     */
    public void setPermanente(String permanente) {
        this.permanente = permanente;
    }

    /**
     * @return the valor_medio
     */
    public double getValor_medio() {
        return valor_medio;
    }

    /**
     * @param valor_medio the valor_medio to set
     */
    public void setValor_medio(double valor_medio) {
        this.valor_medio = valor_medio;
    }

    /**
     * @return the unidade
     */
    public String getUnidade() {
        return unidade;
    }

    /**
     * @param unidade the unidade to set
     */
    public void setUnidade(String unidade) {
        this.unidade = unidade;
    }
}
